# Python中的运算符

# 1、算数运算符
# 括号括起来的运算优先级更高
# / 表示除法 规则和数学中的一样 可以有小数 和C++不一样
print(7 / 2)
# % 表示取余数
print(7 % 2)
# ** 表示幂运算 当**后面是小数的时候就是开方运算
print(7 ** 2)
print(4 ** 0.5)
# // 表示向下取整
print(7 // 2)
print(-7 // 2)


####################################################################################
# 2、关系运算符
# > < >= <= == !=
# 中文字符串比较没有意义
# 字符串的比较相等或者不相等和C++的一样 直接使用 == 或者 != 即可
# 关系运算符比较之后的返回值是bool类型的


####################################################################################
# 3、针对于浮点数之间的关系运算可能出现误差 这是浮点数存储的原因 在进行计算之后可能出现误差
print(0.1 + 0.2 == 0.3)
print(f"0.1 + 0.2 = {0.1 + 0.2}") #0.1 + 0.2 = 0.30000000000000004
# 实际上这个小误差可以忽略 因为工程师站在工程上的角度 忽略很小的误差
# 所以只要两个浮点数相加误差在一个很小的范围之内我们就把结果出现的误差忽略
print(-0.000001 < 0.1 + 0.2 - 0.3 < 0.000001)
# 在Python中支持连续比较 就如上述代码一样


####################################################################################
#4、逻辑运算符
# and or not分别代表C++中的&& || !


####################################################################################
#5、赋值运算符
# 重点是多元赋值
a = 10
b = 20
c = 30
a, b, c= 30, 40, 50 # 用逗号隔开就可以多个变量同时赋值
print(a, b, c)
# 当进行变量交换的时候 不需要创建中间变量tmp 使用多元赋值 因为多元赋值各个变量的赋值是同时进行的
a,b = b,a
print(a, b)

####################################################################################
# 6、复合赋值运算符
# 比如 += -= *= **= %= //=
a = 10
a %= 3
print(a)
b = 10
b //= 3
print(b)
# Python中不持支++ --这样的操作 但是前置++和前置--可以编译通过 原因是将它看作了两个正号、两个负号
# 实际上的值不变
# c = 0
# ++c
# print(c)


